package br.com.unirio.formula1.servico;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * Classe que representa uma Classificacao Geral de Equipes. E o produto final gerado pela aplicacao.
 * E composta de uma lista ordenada de {@link ColocacaoEquipe}, que representa cada colocado da classificacao.
 * 
 * @author Victor
 * 
 */
public class ClassificacaoEquipe
{

    private List<ColocacaoEquipe> colocados;

    public ClassificacaoEquipe()
    {
    }

    public void addColocacao(ColocacaoEquipe c)
    {
	if (colocados == null)
	    colocados = new ArrayList<ColocacaoEquipe>();
	colocados.add(c);
    }

    public List<ColocacaoEquipe> getColocados()
    {
	return this.colocados;
    }

    public void setColocados(List<ColocacaoEquipe> colocados)
    {
	this.colocados = colocados;
    }

    /**
     * Metodo que ordena os colocados da classificacao utilizando o comparator que implementa os criterios de ordenacao
     * e desempate entre colocados ({@link ColocacaoEquipeComparator}).
     * 
     */
    public void ordenar()
    {
	Comparator<ColocacaoEquipe> cp = ColocacaoEquipeComparator.getComparator();
	Collections.sort(colocados, cp);
    }

    public void ordenarPorPosicao()
    {
	Collections.sort(colocados);
    }

    public void atribuirPosicoes()
    {
	int i = 1;
	for (ColocacaoEquipe colocado : colocados)
	{
	    colocado.setPosicao(i);
	    i++;
	}
    }

}
